// 用户模块
import { getData, setData, delData } from '@/utils/ls'
import { userAccountLogin } from '@/api/user'

// user-key 多次使用，使用个常量方便
const USERKEY = 'user-key'
export default {
  namespaced: true,
  state: {
    // 获取时先从本地存储获取，没有的话再给空字符串
    porfile: getData(USERKEY) || {}
  },
  mutations: {
    setToken (state, porfile) {
      state.porfile = porfile
      // 存的时候vuex存一份，本地存储存一份
      setData(USERKEY, porfile)
    },
    clearProfile (state) {
      state.porfile = {}
      // 清空本地存储
      delData(USERKEY)
    }
  },
  actions: {
    // 异步请求
    // 封装一个获取数据的请求方法，state里的数据如果通过异步获取，一般把这个异步请求封装到actions里面
    async fetchLogin (ctx, { account, password }) {
      const res = await userAccountLogin({ account, password })
      // 触发一下mutation中的方法
      ctx.commit('setToken', res.result)
    }
  }
}
